The process of flattening and color converting a document, such as a document that is in Portable Document Format (PDF) (hereinafter “PDF document” or PDF″) is well known in the industry, as described, for example, in “Achieving Reliable Print Output from Adobe Applications when Using Transparency,” a White Paper published by Adobe Systems Incorporated in 2004, accessible at http://partners.adobe.com/public/asn/en/print_resource_center/TXPGuide.pdf.
FIG. 1 illustrates an exemplary such flattening process. A document, such as a PDF, containing a collection of graphical objects 10 (e.g. ellipses 12 and 14 each filled with a color to the left of the arrow shown in FIG. 1) stores these objects in a stacking order (“z-order”) in which the objects can overlap one another. The resulting color of areas, such as area 13, where objects overlap each other is determined by a rendering algorithm, such as that described in the PDF reference (ISO 32000-1). The rendering algorithm takes into account the color of the contributing objects, several transparency mechanisms, overprint attributes and the z-order of objects.
Flattening consists of simplifying the object stack 10 by replacing the original objects 12 and 14 on the left side of the arrow with new non-overlapping objects (“islands”) shown on the right side of the arrow, namely islands 15, 16 and 17 that are calculated from the intersection of original objects. The color of these “islands” is calculated from the interaction of the original objects contributing to the overlap of these “islands”. For example, given the cyan ellipse 12 and an overlapping magenta ellipse 14 with overprint to the left of the arrow in FIG. 1, the flattened result to the right of the arrow contains three objects: island 15 in cyan, corresponding to the area of ellipse 12 that does not intersect with ellipse 14; island 17 in magenta, corresponding to the area of ellipse 14 that does not intersect with ellipse 12; and island 16, corresponding to the intersecting areas of ellipse 12 and ellipse 14, in blue. Flattening of a PDF may be used in the industry to raster image process (“RIP”) PDFs on raster image processors (“RIPs”) incapable of handling the full PDF transparency model. A second reason to use flattened PDFs is that it is possible to create PDFs where color management has already been applied to target a PDF at a particular device. Applying color management on the original objects may lead to unwanted results, since transparency and overprint calculations generally need to be performed before color conversion to achieve color correct results. For example, with respect to printing ellipses from the example provided in FIG. 1 on a device with colorants a, b and c, convert the cyan from ellipse 12 to (a1,b1,c1) and the magenta from ellipse 14 to (a2, b2, c2) the correct result of color converting the blue (cyan+magenta in overprint) of the intersection will be (a3,b3,c3) and not the overprint of (a1,b1,c1) and (a2, b2, c2).
A print job, especially a variable document used in the packaging and labels market, typically has a lot of recurring content. Such a variable document print job may contain, for example, a large amount of identical brand- and product-related content (brand images, brand name, ingredient copy, etc.). Variable content (serialization numbers, unique barcodes, track and trace elements, customer name, etc.) are added to the brand and product content. As used herein, the term “variable document” refers to a collection of “variable document instances,” in which each “variable document instance” comprises a unique variation of a document, such as the part of a variable document for a target addressee. Each variable document instance may contain multiple pages. Each page in a variable document instance contains recurring content (the same for all variable document instances) and variable content (specific for this instance). The entire variable document may be stored, for example, in a single PDF file or may be spread over multiple files.
Thus, for example, a marketing campaign may comprise a three-page flyer to be distributed to 10,000 addressees. Page x of the flyer may contain graphics identical for all 10,000 addressees plus some additional information specific to each addressee. The variable document in this example therefore comprises 10,000 variable document instances of 3 pages each. The variable document may be stored in a single PDF/VT of 30,000 pages, or may instead be stored in 10,000 PDFs of 3 pages each, or in any combination of number of files and pages per file. The file storage protocol is immaterial to what is considered the “variable document,” which comprises the full collection of files necessary to create the 30,000 pages required by this exemplary print job. Similarly, for a label production example, a run of 100,000 labels may contain some recurring content plus a unique barcode for each label. In this case the variable document comprises 100,000 variable document instances of a single page each. The variable document is typically stored in a single PDF/VT of 100,000 pages, but may also be stored in 100,000 PDFs of 1 page each.
PDF (ISO 32000-1) discloses an efficient way for storing recurring content. The recurring content is stored only once in a PDF in a form XObject. The content stream of each page in the PDF, representing a page in a variable document instance, refers to (but does not contain) these form XObjects and adds the non-recurring variable content that is valid for the particular page. This leads to more compact storage. RIPs also have optimization strategies to avoid RIPping the recurring content contained in form XObjects multiple times. There is no limitation, however, in the interaction of the recurring content in the XObjects with the variable content. Objects can overprint and can interact through the various transparency blending algorithms defined in the PDF reference.
PDF/VT (ISO 16612-2) takes the above concepts a step further. Using metadata attached to the form XObjects, an application can add hints to form XObjects to indicate that a form XObject really contains recurring data and should be optimized. This avoids RIP strategies mistakenly trying to optimize form XObjects that were introduced in the PDF for reasons other than storing recurring content.
It is possible to flatten and color-convert a PDF with recurring content stored in form XObjects by flattening the entire page content for every page. To do this, the flattening algorithm calculates the flattened result from the variable content plus the recurring content (recall that these objects can interact with transparency and overprint) and stores the flattened result in the page of the new PDF. The resulting PDF is large and not optimized for the RIP, because the recurring content is included in the flattened representation of every page.
There is a need in the art, therefor, for methods and systems for optimizing a consolidated document with recurring and variable content in a page description language (“PDL”) document (such as, but not limited to, a PDF or PDF/VT document).